This notebook was written for the AWEAR Case Studies as part of a PhD project on Engineering Systems Design in Healthcare at the Engineering Systems Division, DTU Management, in collaboration with Rigshospitalet-Glostrup.
The purpose of this notebook is to provide regular reports on the data being recorded from study participants, to check that it is being recorded and looks as expected. The R script imports, tests and plots data from a specified participant and timeframe, as shown in the code and output below.
Report subject and period:
This report is for user P10JL for the time period from 2018-03-19 to 2018-03-30
Import and restructure data:
Overview of available csv files and their current use status:
| “activity.csv” |
coded activity types |
in use |
| “battery.csv” |
charging log |
in use |
| “bluetooth.csv” |
- |
not in use |
| “calllog.csv” |
log of phonecalls |
to be added |
| “experience_sampling.csv” |
answers to daily self-reports |
in use |
| “hardware_info.csv” |
- |
not in use |
| “location.csv” |
GPS data from watch and phone |
in use |
| “screen.csv” |
screen on/off transitions (phone) |
in use |
| “sms.csv” |
sms log |
to be added |
| “step_count.csv” |
step counts from watch and phone |
in use |
| “wearable.csv” |
- |
no longer in use |
| “wifi.csv” |
- |
not in use |
The output below confirms which files have been imported, followed by processing steps.
activity file imported
battery file imported
calllog file imported
experience_sampling file imported
location file imported
screen file imported
sms file imported
step_count file imported
***
Processing file containing: activity confidence
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
Complete: column 'label' created describing activity based on activity code
Complete: activity data reduced from 4397 to 2618 rows by keeping only the max-confidence activities for each unique timestamp
***
Processing file containing: plugged status level
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
Complete: column 'mode' created describing charging status based on 'plugged' variable
***
Processing file containing: name number type duration
User ID is not in dataset, returning NULL
***
Processing file containing: question_id answer
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
***
Processing file containing: lat lon accuracy provider
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
***
Processing file containing: screen_on
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
***
Processing file containing: address body type read
User ID is not in dataset, returning NULL
***
Processing file containing: step_count
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
Quality check: data source
Check whether data coming from watch, phone or both (also gives date of last reading).
Data in activity comes from phone
Last reading in activity is on [1] "2018-03-28 07:31:49 CEST"
Data in battery comes from phone
Last reading in battery is on [1] "2018-03-28 07:31:49 CEST"
Data in experience_sampling comes from phone
Last reading in experience_sampling is on [1] "2018-03-27 14:30:54 CEST"
Data in location comes from phone watch
Last reading in location is on [1] "2018-03-28 07:36:35 CEST"
Data in screen comes from phone
Last reading in screen is on [1] "2018-03-28 07:36:42 CEST"
Data in step_count comes from phone watch
Last reading in step_count is on [1] "2018-03-28 07:37:00 CEST"
Visualise data:
to do
- resolve warnings
- customise colours
- axes with dates: orders not in time, january after feb (ordered by day not taking month into account)
minimal value for n is 3, returning requested palette with 3 different levels
minimal value for n is 3, returning requested palette with 3 different levels
The shape palette can deal with a maximum of 6 discrete values because more than 6
becomes difficult to discriminate; you have 11. Consider specifying shapes manually if
you must have them.The shape palette can deal with a maximum of 6 discrete values because more than 6
becomes difficult to discriminate; you have 11. Consider specifying shapes manually if
you must have them.
LS0tDQp0aXRsZTogJ0FXRUFSIFN0dWRpZXM6IERhdGEgQ2hlY2tlcicNCmF1dGhvcjogJ0p1bGlhIFRob3JwZScNCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQo8IS0tIENvZGUgYmFzZWQgb24gRGF0YUNoZWNrZXJfbWFpbl92Ml8yMDE4MDIyMC5SLiAtLT4NCg0KVGhpcyBub3RlYm9vayB3YXMgd3JpdHRlbiBmb3IgdGhlIEFXRUFSIENhc2UgU3R1ZGllcyBhcyBwYXJ0IG9mIGEgUGhEIHByb2plY3Qgb24gKkVuZ2luZWVyaW5nIFN5c3RlbXMgRGVzaWduIGluIEhlYWx0aGNhcmUqIGF0IHRoZSBFbmdpbmVlcmluZyBTeXN0ZW1zIERpdmlzaW9uLCBEVFUgTWFuYWdlbWVudCwgaW4gY29sbGFib3JhdGlvbiB3aXRoIFJpZ3Nob3NwaXRhbGV0LUdsb3N0cnVwLg0KDQpUaGUgcHVycG9zZSBvZiB0aGlzIG5vdGVib29rIGlzIHRvIHByb3ZpZGUgcmVndWxhciByZXBvcnRzIG9uIHRoZSBkYXRhIGJlaW5nIHJlY29yZGVkIGZyb20gc3R1ZHkgcGFydGljaXBhbnRzLCB0byBjaGVjayB0aGF0IGl0IGlzIGJlaW5nIHJlY29yZGVkIGFuZA0KbG9va3MgYXMgZXhwZWN0ZWQuIFRoZSBSIHNjcmlwdCBpbXBvcnRzLCB0ZXN0cyBhbmQgcGxvdHMgZGF0YSBmcm9tIGEgc3BlY2lmaWVkIHBhcnRpY2lwYW50IGFuZCB0aW1lZnJhbWUsIGFzIHNob3duIGluIHRoZSBjb2RlIGFuZCBvdXRwdXQgYmVsb3cuDQoNCmBgYHtyIFNFVFVQLCBpbmNsdWRlPUZBTFNFfQ0KIyBTZXQgdGhlIGRyaXZlLCBsb2FkIHBhY2thZ2VzIGFuZCBmdW5jdGlvbnMuDQoNCnNldHdkKCJNOi9QaERfRm9sZGVyL0Nhc2VTdHVkaWVzL0RhdGFfYW5hbHlzaXMvc291cmNlIikNCg0KIyBMb2FkIHJlcXVpcmVkIHBhY2thZ2VzOg0KbGlicmFyeShkYXRhLnRhYmxlKQ0KbGlicmFyeShkdHBseXIpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShtYWdyaXR0cikNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShyZXNoYXBlMikNCmxpYnJhcnkobWFwdG9vbHMpDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkobWFwcykNCmxpYnJhcnkobWFwcHJvaikNCmxpYnJhcnkoc3ApDQpsaWJyYXJ5KGNhVG9vbHMpDQoNCiMgTG9hZCBjdXN0b20gZnVuY3Rpb25zOg0Kc291cmNlKCJKUlRfdXRpbHMuUiIpDQoNCiMgRGVmaW5lIGNvbnN0YW50czoNCmZvbGRlciA8LSAiLi4vLi4vRGF0YV9kdW1wcy9kdW1wX2N1cnJlbnRfYW5hbHlzaXMvIiAjIHBhdGggdG8gZm9sZGVyIHRoYXQgaG9sZHMgbXVsdGlwbGUgLmNzdiBmaWxlcywgZG93bmxvYWRlZCBmcm9tIG5pZ2h0aW5nYWxlIHdlYnBvcnRhbA0Kbm90LmluLnVzZSA8LSBjKCJibHVldG9vdGgiLCJoYXJkd2FyZV9pbmZvIiwid2VhcmFibGUiLCJ3aWZpIikNCmFjdGl2aXR5LnNlbGVjdGlvbiA8LSBjKCJTdGlsbCIsICJGb290IiwgIlZlaGljbGUiLCAiVGlsdGluZyIsICJCaWN5Y2xlIikgIyBtYWluIGFjdGl2aXR5IHR5cGVzDQp0b19wbG90IDwtIGMoImFjdGl2aXR5IiwgDQogICAgICAgICAgICAgImJhdHRlcnkiLCANCiAgICAgICAgICAgICAiZXhwcyIsIA0KICAgICAgICAgICAgICJsb2NhdGlvbiIsIA0KICAgICAgICAgICAgICJzY3JlZW4iLCANCiAgICAgICAgICAgICAic3RlcHMiKQ0KdXNlcnMgPC0gbGlzdChqdWxpYSA9ICI5M2E2ZDMxYy1lMjE2LTQ4ZDgtYTlhMi1mMmY3MjM2MjU0OGQiLA0KICAgICAgICAgICAgICBkZWFuID0gImIxMzE2MjgwLTM4YTYtNDVlMS05YmI5LTdhZmIyYTFhMmE5NiIsDQogICAgICAgICAgICAgIHBlciA9ICI3YmY1ZmVjMy1mNDZmLTQxOWUtOTU3My0wMDFmZTliNDdkODEiLA0KICAgICAgICAgICAgICB2ZXJlbmEgPSAiYTBjNzRhODgtYjI5My00YjMxLTkyYzAtOTY3NTAyYjI4MTMyIiwNCiAgICAgICAgICAgICAgYWd6YW0gPSAiNTIxNTJkZGEtMGY1NC00NmQxLWFmZmEtNmRlYTg1Zjg0MGRjIiwNCiAgICAgICAgICAgICAgYW5qYSA9ICIzNmY5ZDA2MS1jNWU5LTRmMzAtOTFiMi04MzM1MWZmNDAyODgiLA0KICAgICAgICAgICAgICAjUDAxRkEgPSAiNjMyMWY3ZWYtYTk1OC00NGFkLWI4ZTUtNWFhMDRiYzAwNGUxIiwNCiAgICAgICAgICAgICAgUDAzSkogPSAiZTlmNDRlYjUtODk2Mi00ODk0LTgzYzYtNzgzMDI1YzZlYWVhIiwNCiAgICAgICAgICAgICAgUDA2U1MgPSAiZjlmMjQ4MzgtYzg0NC00MmQ0LTgzNDMtYjIwZWJkZDIyMGYzIiwNCiAgICAgICAgICAgICAgUDA3TUcgPSAiNGZiZmRkZDAtYTM0Ni00MWM4LWJlOGQtZjg4MDRiNTA2OGQzIiwNCiAgICAgICAgICAgICAgUDA4VUggPSAiYTg1ZjI5OWUtN2EwOS00YmE3LWJjMTktOGEyMDBjMjY4NmMyIiwNCiAgICAgICAgICAgICAgUDEwSkwgPSAiZDA1ZmE5ODQtOGQzYi00NDA1LWI0MTctMjExZDFhM2Y1MGQ2IikNCg0KYGBgDQoNCiMjIyBSZXBvcnQgc3ViamVjdCBhbmQgcGVyaW9kOg0KYGBge3IgU2V0dGluZ3MsIGVjaG89RkFMU0V9DQoNCiMgU2VsZWN0IHVzZXINCnVzZXJpZCA8LSB1c2VycyRQMTBKTA0KDQojIFNldCBwZXJpb2Qgb2YgaW50ZXJlc3QNCmQuc3RhcnQgPC0gYXMuUE9TSVhjdCgiMjAxOC0wMy0xOSIpICMgeXl5eS1tbS1kZCANCmQuc3RvcCA8LSBhcy5QT1NJWGN0KCIyMDE4LTAzLTMwIikNCg0KY2F0KCJUaGlzIHJlcG9ydCBpcyBmb3IgdXNlciAiLCBuYW1lcyh1c2Vyc1t1c2Vycz09dXNlcmlkXSksICJmb3IgdGhlIHRpbWUgcGVyaW9kIGZyb20gIiwgYXMuY2hhcmFjdGVyKGQuc3RhcnQpLCAiIHRvICIsIGFzLmNoYXJhY3RlcihkLnN0b3ApKSANCg0KYGBgDQoNCg0KIyMjIEltcG9ydCBhbmQgcmVzdHJ1Y3R1cmUgZGF0YToNCk92ZXJ2aWV3IG9mIGF2YWlsYWJsZSBjc3YgZmlsZXMgYW5kIHRoZWlyIGN1cnJlbnQgdXNlIHN0YXR1czoNCg0KRmlsZSB8IERlc2NyaXB0aW9uIHwgU3RhdHVzDQotLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0NCiJhY3Rpdml0eS5jc3YiIHwgY29kZWQgYWN0aXZpdHkgdHlwZXMgfCBpbiB1c2UNCiJiYXR0ZXJ5LmNzdiIgfCBjaGFyZ2luZyBsb2cgfCBpbiB1c2UNCiJibHVldG9vdGguY3N2IiB8IC0gfCBub3QgaW4gdXNlDQoiY2FsbGxvZy5jc3YiIHwgbG9nIG9mIHBob25lY2FsbHMgfCB0byBiZSBhZGRlZA0KImV4cGVyaWVuY2Vfc2FtcGxpbmcuY3N2IiB8IGFuc3dlcnMgdG8gZGFpbHkgc2VsZi1yZXBvcnRzIHwgaW4gdXNlDQoiaGFyZHdhcmVfaW5mby5jc3YiIHwgLSB8IG5vdCBpbiB1c2UNCiJsb2NhdGlvbi5jc3YiIHwgR1BTIGRhdGEgZnJvbSB3YXRjaCBhbmQgcGhvbmUgfCBpbiB1c2UNCiJzY3JlZW4uY3N2IiB8IHNjcmVlbiBvbi9vZmYgdHJhbnNpdGlvbnMgKHBob25lKSB8IGluIHVzZQ0KInNtcy5jc3YiIHwgc21zIGxvZyB8IHRvIGJlIGFkZGVkDQoic3RlcF9jb3VudC5jc3YiIHwgc3RlcCBjb3VudHMgZnJvbSB3YXRjaCBhbmQgcGhvbmUgfCBpbiB1c2UNCiJ3ZWFyYWJsZS5jc3YiIHwgLSB8IG5vIGxvbmdlciBpbiB1c2UNCiJ3aWZpLmNzdiIgIHwgLSB8IG5vdCBpbiB1c2UNCg0KVGhlIG91dHB1dCBiZWxvdyBjb25maXJtcyB3aGljaCBmaWxlcyBoYXZlIGJlZW4gaW1wb3J0ZWQsIGZvbGxvd2VkIGJ5IHByb2Nlc3Npbmcgc3RlcHMuDQoNCg0KYGBge3IgSW1wb3J0LCBlY2hvPUZBTFNFfQ0KZGF0YXNldHMuYWxsIDwtIGdldC5kYXRhKGZvbGRlciwgbm90LmluLnVzZSkgJT4lIA0KICBsYXBwbHkocmVzdHJ1Y3R1cmUsIHVzZXJpZCwgZC5zdGFydCwgZC5zdG9wKQ0KZGF0YXNldHMuYWxsIDwtIEZpbHRlcihmdW5jdGlvbih4KSAhaXMubnVsbCh4KVsxXSxkYXRhc2V0cy5hbGwpICMgcmVtb3ZlIGFueSBudWxsIGRhdGFmcmFtZXMNCg0KI3Rlc3Q8LWZpbHRlcihkYXRhc2V0cy5hbGwkYWN0aXZpdHksIHVzZXI9PSJmOWYyNDgzOC1jODQ0LTQyZDQtODM0My1iMjBlYmRkMjIwZjMiKQ0KDQpgYGANCg0KDQojIyMgUXVhbGl0eSBjaGVjazogZGF0YSBzb3VyY2UNCkNoZWNrIHdoZXRoZXIgZGF0YSBjb21pbmcgZnJvbSB3YXRjaCwgcGhvbmUgb3IgYm90aCAoYWxzbyBnaXZlcyBkYXRlIG9mIGxhc3QgcmVhZGluZykuIA0KDQpgYGB7ciBRQywgZWNobz1GQUxTRX0NCmZvciAoaSBpbiAxOmxlbmd0aChkYXRhc2V0cy5hbGwpKXsNCiAgaiA8LSBkYXRhc2V0cy5hbGxbW2ldXQ0KICBpZighaXMubnVsbChqKSl7DQogICAgY2F0KCJEYXRhIGluICIsbmFtZXMoZGF0YXNldHMuYWxsKVtpXSwiY29tZXMgZnJvbSAiLCBkaXN0aW5jdChqLGRzb3VyY2UpWywxXSwiXG4iKTsNCiAgICBjYXQoIkxhc3QgcmVhZGluZyBpbiIsbmFtZXMoZGF0YXNldHMuYWxsKVtpXSwiaXMgb24iLGNhcHR1cmUub3V0cHV0KG1heChqJHRpbWVzdGFtcCkpLCJcblxuIik7DQogIH0NCn0NCmBgYA0KDQojIyBWaXN1YWxpc2UgZGF0YToNCg0KdG8gZG8NCg0KKiByZXNvbHZlIHdhcm5pbmdzDQoqIGN1c3RvbWlzZSBjb2xvdXJzDQoqIGF4ZXMgd2l0aCBkYXRlczogb3JkZXJzIG5vdCBpbiB0aW1lLCBqYW51YXJ5IGFmdGVyIGZlYiAob3JkZXJlZCBieSBkYXkgbm90IHRha2luZyBtb250aCBpbnRvIGFjY291bnQpDQoNCmBgYHtyIFBsb3RzLCBlY2hvPUZBTFNFfQ0KcmVzdWx0czwtc2hvd19wbG90cyhkYXRhc2V0cy5hbGwsIHRvX3Bsb3QpDQpmb3IoaSBpbiAxOmxlbmd0aChyZXN1bHRzKSl7DQogIHByaW50KHJlc3VsdHNbW2ldXSkNCn0NCg0KYGBgDQoNCg==